import axios from 'axios'
import { message } from 'ant-design-vue'
import { errorCode } from './constant.js'
import router from '@/router/index.js'

// const router = useRouter()
// 创建 axios 实例
const instance = axios.create({
  //   baseURL: 'https://api.example.com', // 设置基础 URL
  timeout: 60 * 1000, // 设置请求超时时间
  headers: {
    'Content-Type': 'application/json;charset=UTF-8',
    Accept: 'application/json;charset=UTF-8',
  },
  withCredentials: true, // 允许携带 cookies
})

// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前做一些事情，比如添加 token
    return config
  },

  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  },
)

// 添加响应拦截器
instance.interceptors.response.use(
  function (response) {
    if (response.status === 200) {
      if (response.data.message === 'success') {
        // 对响应数据做点什么
        return response.data.data
      }
      if (response.data.res_message === '成功') {
        // console.log('到这里了吗 >>>')
        return response.data.fileListAO || response.data
      }
      if (response.data.code === 403) {
        message.error(response.data.message)
        return Promise.reject(response.data)
      }
      return response.data
    } else {
      return Promise.reject(response)
    }
  },
  function (error) {
    // 对响应错误做点什么
    console.error('请求失败41411243>>>>>>:', error.response.data.res_code)
    const errKey = error.response.data.errorCode || error.response.data.res_code
    console.log(errKey, 'errKey')
    if (errKey) {
      message.error(errorCode[errKey])
    }
    if (error.response.data.res_message) {
      message.error(error.response.data.res_message || error.response.data)
    }

    if (error.response.data.errorCode === 'InvalidSessionKey') {
      console.log('router>>>', router)
      router.push('/login')
    }
    return Promise.reject(error)
  },
)

export default instance
